package javaClassExercise.classandObject;

/**
 *
 * Java之static关键字
 * Created by lomo on 2017.
 */
public class javaStatic {

    //Constructor 3.
    public javaStatic(String s){
        System.out.println(s);
    }

    //static code area 1.
    static {
        System.out.println("这是javaStatic类中的静态代码块...");
    }

    //non-static code are 2.
    {
        System.out.println("javaStatic类的非静态代码块....");
    }

    //main Fn
    public static void main(String... args) {
        javaStaticTest jst = new javaStaticTest();
        //输出：
        /**
         * 这是javaStatic类中的静态代码块...
         javaStatic类的非静态代码块....
         Lomo1
         javaStatic类的非静态代码块....
         Lomo3
         这是javaStaticTest类！
         javaStatic类的非静态代码块....
         lomo2
         */
    }

}

class javaStaticTest {

    //变量都会优先于一般方法/构造方法 执行 3.
    public javaStatic js = new javaStatic("Lomo1");

    public javaStaticTest() {
        System.out.println("这是javaStaticTest类！");
        javaStatic js1 = new javaStatic("lomo2");
    }

    //虽然在此处声明，但是会被提前 和JS里的变量提升类似
    javaStatic js2 = new javaStatic("Lomo3");

}
